# Programmable Bash command completion for the ‘xkcdpass’ command.
# See the Bash manual “Programmable Completion” section.
#
# Copyright © 2015–2016 Ben Finney <ben+python@benfinney.id.au>
# This is free software: you may copy, modify, and/or distribute this
# work under the terms of the BSD 3-Clause license.
# See the file ‘LICENSE.BSD’ for details.

shopt -s progcomp

_xkcdpass_completion () {
    COMPREPLY=()

    local cur="${COMP_WORDS[COMP_CWORD]}"
    local prev="${COMP_WORDS[COMP_CWORD-1]}"

    local opts="-h --help -V --verbose"
    opts+=" -w --wordfile -v --valid-chars -a --acrostic"
    opts+=" -n --numwords --min --max"
    opts+=" -c --count -d --delimiter"

    case "${prev}" in
        -w|--wordfile)
            COMPREPLY=( $(compgen -A file -- ${cur}) )
            COMPREPLY+=("eff-long")
            COMPREPLY+=("eff-short")
            COMPREPLY+=("eff-special")
            COMPREPLY+=("legacy")
            COMPREPLY+=("spa-mich")
            COMPREPLY+=("fin-kotus")
            COMPREPLY+=("nor-nb")
            COMPREPLY+=("eff_large_de_sample.wordlist")
            ;;

        *)
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            ;;
    esac
}

complete -F _xkcdpass_completion xkcdpass


# Local variables:
# coding: utf-8
# mode: shell-script
# End:
# vim: fileencoding=utf-8 filetype=bash :
